Análisis exploratorio

El objetivo de este notebook es realizar un análisis y preprocesamiento de las variables numéricas y categóricas, ajustando tipos de datos y dividiendo el conjunto en train y test.

Para las variables numéricas, se explora su distribución, se analizan las correlaciones y se gestionan los outliers y valores faltantes. En las variables categóricas, se imputan valores faltantes y se utilizan métodos como el coeficiente V de Cramer y el WOE para entender las relaciones entre ellas.

Librerias:

Las librerías utilizadas en este notebook son:

Funciones:

Importamos las funciones necesarias para este notebook.

Datos:

Importamos los datos originales, ya que no he realizado ninguna modificación sobre ellos aún.

Recordamos las dimensiones y los tipos de datos con los que estamos trabajando:

Identificamos y clasificamos las variables del conjunto de datos en categóricas y continuas, asegurándome de que cada una tenga el tipo de dato correcto según lo que representa. Luego, ajusto los tipos de datos para asegurarme de que se puedan interpretar y manipular de manera adecuada en las etapas siguientes del análisis.

Es importante destacar que algunas variables clasificadas inicialmente como enteras son, en realidad, de naturaleza booleana, lo que las convierte en categóricas. Por otro lado, existen variables enteras que corresponden a valores continuos. Por esta razón, lo más seguro es que las variables almacenadas en other representan aquellas que, aunque son enteras, se consideran verdaderamente continuas.

Es interesante destacar que las variables que representan diferencias de tiempo incluyen valores tanto negativos como positivos, ya que están definidas en relación al momento de la solicitud del crédito. Más adelante, se estudiarán con mayor detenimiento.

Separación en train y test estratificado:

Antes de entrenar el modelo, realizamos una separación estratificada de los datos en conjuntos de entrenamiento y prueba, para asegurar que la distribución de las clases en la variable objetivo se mantenga proporcional.

Como hemos comentado en notebook anterior, se puede observar que el muestreo está desbalanceado, ya que la mayoría de los clientes no tienen dificultades para pagar el préstamo.

El 20% de los datos se asignan al conjunto de prueba y el 80% al conjunto de entrenamiento para entrenar el modelo con la mayoría de los datos y evaluar su desempeño con una muestra representativa y no utilizada en el entrenamiento.

La salida muestra que tanto en el conjunto de entrenamiento como en el de prueba, las proporciones de ambas clases son prácticamente idénticas, lo que nos confirma que la separación estratificada ha mantenido el balance de las clases en ambos conjuntos.

Visualización descriptiva de los datos:

Este análisis muestra la cantidad de valores nulos por filas y por columnas en el conjunto de entrenamiento, ayudando a identificar qué variables o registros contienen datos faltantes.

No se ha eliminado ninguna columna en este análisis, ya que no se ha identificado un porcentaje de valores nulos lo suficientemente alto como para justificarlo. Aunque en general es importante eliminar columnas con un exceso de nulos para evitar pérdida de información importante, en este caso todas las columnas se han conservado, considerando que incluso aquellas con valores faltantes podrían seguir siendo relevantes.

A continuación, visualizamos la distribución de las demás variables en el conjunto de datos, tanto de manera general como en función de la variable objetivo. Esto nos permitirá entender mejor cómo se distribuyen las variables y cómo podrían estar relacionadas con la presencia de dificultades de pago en los clientes (1: dificultades de pago, 0: sin dificultades de pago).

Para facilitar la interpretación y comprensión de los gráficos, primero se graficarán las variables continuas y, a continuación, las variables categóricas.

Empiezo analizando las variables continuas. Para ello, me fijo en la forma de la distribución en el histograma, ya que esto me puede indicar si los datos siguen una distribución normal, están sesgados o tienen múltiples picos. También observo el boxplot para identificar valores atípicos y entender la dispersión de los datos a través del rango intercuartílico. Además, examino cómo se relaciona la variable continua con la variable objetivo, buscando diferencias claras entre las clases. Por último, reviso la cantidad de valores nulos, ya que pueden influir en la calidad del análisis.

La primera variable que analizo es la población relativa por región. El boxplot muestra una ligera diferencia en función de la variable objetivo, con un rango intercuartílico más amplio en las regiones sin dificultades de pago. Esto podría sugerir que las regiones con mayor población tienen menos dificultades para cumplir con los pagos.

La siguiente variable es la edad en días de vida. El boxplot revela que los clientes más jóvenes tienen más dificultades para pagar, ya que la mediana de este grupo es más baja en comparación con aquellos que no presentan dificultades de pago.

También es interesante observar la relación con el coche de los clientes, los clientes que poseen coches de mayor antigüedad parecen tener más dificultades para pagar

Es útil analizar las variables externas (puntuación normalizada de una fuente de datos externa), cuyos histogramas siguen una distribución normal sesgada, con un pico a la derecha. Los boxplots también muestran medianas diferentes según la variable objetivo. Sin embargo, debido a la falta de información sobre la definición exacta de estas variables, no es posible sacar conclusiones definitivas.

Otra variable interesante a comentar es FLOORSMAX_ (información normalizada sobre el edificio donde vive el cliente). Aunque presenta una gran cantidad de valores nulos y outliers, lo que podría afectar la validez de las conclusiones, los valores más bajos parecen estar asociados con mayores dificultades de pago.

También quiero destacar el impacto del tiempo transcurrido desde que el cliente cambió su número de teléfono antes de solicitar la aplicación. Se observa que aquellos clientes que realizaron este cambio más recientemente tienden a presentar mayores dificultades para cumplir con sus pagos.

Por último, es importante destacar que, debido a la distribución de los datos y la forma en que se presentan, es complicado sacar conclusiones claras de algunas variables. Entre ellas se encuentran YEARS_BEGINEXPLUATATION_AVG y NONLIVINGAPARMENTS_AVG, entre otras.

Para analizar las variables categóricas, inicio observando gráficos de barras, ya que son útiles para visualizar la distribución de las categorías y detectar posibles desbalances. Además, empleo gráficos de barras apiladas en función de la variable objetivo para analizar cómo se distribuyen las clases de TARGET entre las diferentes categorías. Si algunas categorías muestran una relación más marcada con la variable objetivo, esto puede indicar un mayor poder predictivo. También reviso la cantidad de valores nulos en estas variables, ya que su presencia puede afectar la calidad de los datos.

Es importante tener en cuenta que la variable objetivo está desbalanceada: el 91.93% de los casos corresponden a TARGET = 0 y solo el 8.07% a TARGET= 1. Este desequilibrio influye en la interpretación de los resultados y debe considerarse al realizar el análisis.

La primera variable analizada es el sexo del cliente. Aunque las diferencias son ligeras, se observa que los hombres, además de ser quienes solicitan menos préstamos, presentan una mayor probabilidad de enfrentar problemas con los pagos.

Una variable que destaca es el número de hijos de los clientes. Los datos revelan que los clientes con más hijos tienden a experimentar mayores dificultades para cumplir con los pagos. Sin embargo, dado que la mayoría de los clientes tiene entre 0 y 1 hijo, las conclusiones sobre aquellos con un número elevado de hijos se basan en una muestra limitada, lo que reduce su representatividad.

Otra variable relevante es el tipo de ingresos de los clientes. Los resultados muestran que las personas sin empleo y aquellas en baja por maternidad enfrentan mayores dificultades para pagar. Por el contrario, los clientes que son empresarios no presentan problemas significativos con sus pagos.

En cuanto a la ocupación, los gráficos revelan que los clientes con trabajos de baja cualificación (Low-Skill Laborers) tienen más dificultades para cumplir con sus pagos. Este hallazgo resalta el impacto de la estabilidad laboral y los niveles de ingreso en el comportamiento de pago.

La región de residencia también influye significativamente en la probabilidad de dificultades de pago. En particular, los clientes de la región 3 son los que presentan mayores problemas para cumplir con sus pagos, seguidos por los de la región 2. En contraste, los clientes de la región 1 son quienes tienen menos dificultades.

Otro aspecto interesante es la variable relacionada con el documento 2. Los datos indican que las personas que han entregado este documento tienen una mayor proporción de dificultades de pago. Sin embargo, dado que la mayoría de los clientes no han proporcionado este documento, esta conclusión podría no ser representativa del comportamiento general.

Por último, en las variables categóricas booleanas no he identificado información particularmente útil. Esto se debe a que, al tener solo dos valores posibles, su variabilidad es limitada, lo que dificulta la detección de patrones claros o relaciones significativas con la variable objetivo.

Es muy importante destacar que los datos de tipo entero que he definido como categóricos, incluidas las variables booleanas, no presentan ningún valor nulo.

Tratamiento de las variables continuas:

A continuación, se tratarán tres aspectos clave del análisis de los datos: los valores faltantes (missing), las correlaciones entre las variables continuas y los valores atípicos (outliers), con el objetivo de limpiar y entender mejor los datos antes de construir el modelo.

Primero, recuerdo cuales son las variables que he considerado como continuas:

Tratamiento de outliers:

Los valores outliers se pueden sustituir por la media, mediana o utilizando valores extremos como la media ± 3 veces la desviación estándar.

Es importante destacar que, antes de tratar los outliers, se debe analizar su relación con la variable objetivo y comprender su contexto, ya que podrían representar casos relevantes o errores de medición que influyan en la predicción del modelo.

Tras el análisis exploratorio, he decidido, como primera iteración, no sustituir los valores atípicos, ya que es importante evaluar su impacto en el modelo. Esta decisión también se debe a la gran cantidad de outliers observados, algunos de los cuales superan el 2% de los datos. Se puede observar que el porcentaje de la variable objetivo en cada variable cambiará al no considerar los outliers. Una vez construido el modelo, puedo realizar iteraciones utilizando diferentes métodos de tratamiento para evaluar si estos mejoran el rendimiento

Correlaciones:

En esta sección se analizarán las correlaciones entre las variables continuas utilizando la matriz de correlación de Pearson, que mide la fuerza y la dirección de una relación lineal entre dos variables numéricas. Los valores de Pearson oscilan entre -1 y 1, donde 1 indica una relación positiva perfecta, -1 una relación negativa perfecta, y 0 señala la ausencia de una relación lineal.

Es importante mencionar que se establece la autocorrelación en 0 para evitar distracción visual y centrar el análisis en relaciones entre distintas variables

En la matriz de correlación se pueden ver varias correlaciones de Pearson cercanas o iguales a 1, lo que indica que algunas variables están perfectamente correlacionadas. Esto podría ser una señal de que hay variables redundantes o derivadas de otras, lo que podría generar problemas de multicolinealidad en los modelos estadísticos.

Un patrón interesante es que las variables relacionadas con medidas como la media, mediana y moda de una misma característica muestran correlaciones cercanas a 1. Esto sugiere que estas variables podrían estar representando prácticamente la misma información.

Más adelante, se revisarán estas variables y, si es necesario, se eliminarán aquellas que sean idénticas o estén altamente correlacionadas para evitar que afecten los resultados del modelo.

En el caso de algoritmos basados en árboles, como XGBoost y Random Forest, la multicolinealidad no representa un problema mayor, ya que estos modelos no necesitan que las variables sean independientes entre sí para hacer predicciones. De hecho, son capaces de manejar variables correlacionadas de forma eficiente sin que esto afecte su rendimiento.

Sin embargo, en modelos lineales como los GLM (Modelos Lineales Generalizados), la multicolinealidad sí puede afectar la estabilidad e interpretación de los coeficientes. Esto ocurre porque la alta correlación entre variables puede inflar los errores estándar, generando estimaciones inexactas. En estos casos, será importante eliminar o reducir la colinealidad antes de entrenar el modelo.

He optado por no eliminar las variables con altas correlaciones. Estas podrían ser candidatas a eliminación en pasos posteriores. Si en etapas futuras se utiliza un algoritmo que requiera la eliminación de la colinealidad, procederemos a eliminar las variables más correlacionadas para evitar posibles problemas en los resultados del modelo.

Por otro lado, comprobar la correlación de Spearman puede ser útil, ya que mide relaciones monótonas no lineales entre variables. Esto nos permitirá identificar patrones que podrían ser pasados por alto con Pearson.

La matriz de correlación de Spearman muestra relaciones monótonas, ya sean lineales o no lineales, y tiene la ventaja de ser menos sensible a los outliers. Por otro lado, la matriz de correlación de Pearson está enfocada en relaciones lineales. Ambas matrices brindan información útil sobre las dependencias entre las variables.

Al comparar ambas matrices, se puede ver que las relaciones entre las variables son bastante similares tanto en Pearson como en Spearman, lo que sugiere que la mayoría de las relaciones son monótonas. Sin embargo, en la matriz de Spearman se detectan algunas relaciones que no se habían visto en Pearson, lo que indica que existen patrones no lineales en los datos que la correlación lineal no logra captar.

Tratamiento de valores nulos:

Antes de decidir cómo manejar los valores nulos, es fundamental analizar su distribución en relación con la variable objetivo. Específicamente, es útil determinar si los valores faltantes se concentran en una clase específica de la variable objetivo o si su distribución es uniforme.

Como se comentó en el notebook anterior, el muestreo está desbalanceado, con la mayoría de los clientes sin dificultades para pagar el préstamo. Además, los valores faltantes se concentran principalmente en la clase 0 de la variable objetivo (clientes sin problemas de pago), siguiendo la misma tónica del desbalance presente en los datos.

Dado que al principio no cuento con suficiente contexto sobre las variables, se pueden emplear diferentes enfoques y comparar los resultados del modelo. Las opciones son las siguientes:

En este trabajo he optado por la opción 2 para imputar los valores faltantes utilizando la media o mediana. Esto es ideal para completar los datos sin recurrir a métodos costosos ni distorsionar su distribución. Descarto el uso de valores extremos, ya que las hay columnas que representan diferencias de tiempo, con valores tanto negativos como positivos. Además, Utilizar extremos podría introducir sesgos y afectar la coherencia del análisis.

Por lo tanto, imputar los valores faltantes con la media o la mediana permite mantener la coherencia y el equilibrio de las columnas, asegurando que los valores reemplazados sean representativos de la tendencia general de los datos sin introducir sesgos indebidos.

Es importante recordar que los valores faltantes en el conjunto de test se imputan utilizando la media calculada a partir del conjunto de train.

Ahora verificamos que no hay variables con valores nulos, confirmando que el reemplazo se ha realizado con éxito.

Dado que se han imputado los valores faltantes utilizando la mediana, al revisar la matriz de correlación de Pearson no se han observado diferencias significativas en comparación con los datos originales. Esto significa que el método de imputación ha funcionado bien y no ha alterado las relaciones entre las variables en el conjunto de datos.

Tratamiento de las variables categoricas:

El tratamiento de las variables categóricas incluye evaluar su relación y relevancia para el modelo. La medida V-Cramér evalúa la fuerza de la asociación entre dos variables categóricas, con valores cercanos a 1 indicando una fuerte relación. Este análisis ayuda a seleccionar variables relevantes y eliminar redundancias.

Analizamos la medida V de Cramér para cada una de las variables categóricas.

Las variables analizadas muestran asociaciones débiles con la variable objetivo (TARGET), según los valores de Cramér's V, la mayoría menores a 0.1, indicando baja relación entre ellas y el incumplimiento de pagos. Esto sugiere que otras variables o enfoques podrían ser necesarios para mejorar el modelo predictivo.

Adicionalmente al coeficiente V de Cramer, he analizado en las variables categóricas el Weight of Evidence (WOE) y el Information Value (IV). El WOE mide la fuerza de la relación entre una variable categórica y la variable objetivo, transformando las categorías en valores continuos que reflejan el riesgo de un evento. Por su parte, el IV cuantifica la capacidad predictiva de una variable categórica, indicando qué tan bien una variable distingue entre las clases del objetivo.

Teniendo en cuenta que la variable objetivo indica si el cliente ha tenido dificultades de pago (1) o no (0), los valores de WOE reflejan cómo las categorías de las variables afectan la probabilidad de que un cliente tenga problemas de pago.

Por ejemplo, en la variable de nivel educativo del cliente, el valor de WOE para los que tienen título académico (1.33) sugiere que estos clientes tienen una mayor probabilidad de no tener dificultades de pago. En cambio, los clientes con secundaria incompleta tienen un valor de WOE negativo (-0.30), lo que indica que tienen más probabilidades de experimentar dificultades de pago.

En cuanto al tipo de contrato, los préstamos revolventes tienen un WOE positivo (0.41), lo que sugiere que los clientes con este tipo de préstamo tienen menos probabilidades de tener problemas de pago. Por otro lado, los préstamos en efectivo tienen un WOE cercano a cero, lo que implica que hay una relación débil con la probabilidad de impago.

Como mencionamos antes, la variable de tipo de ingreso es clave. Los empresarios y estudiantes tienen un WOE infinito, lo que indica que tienen una relación muy fuerte con un bajo riesgo de impago. En cambio, los desempleados tienen un WOE negativo (-1.81), lo que refleja un alto riesgo de dificultades de pago.

También es relevante el WOE de la cantidad de hijos. A medida que el número de hijos aumenta, el WOE disminuye, lo que sugiere que los clientes con más hijos tienen una mayor probabilidad de enfrentar dificultades de pago.

Por último, en cuanto al tipo de ocupación, las ocupaciones de contables y gerentes tienen valores de WOE positivos, lo que indica un menor riesgo de impago, mientras que los trabajadores no calificados tienen un WOE negativo significativo (-0.78), lo que sugiere una mayor probabilidad de dificultades de pago.

En resumen, las variables con un IV alto, como OCCUPATION_TYPE y NAME_EDUCATION_TYPE, tienen un mayor poder predictivo y son útiles para predecir las dificultades de pago. Por otro lado, las variables con un IV bajo o cercano a cero, como FLAG_MOBIL y FLAG_CONT_MOBILE, no aportan mucha información y podrían no ser relevantes para el modelo. En general, las variables con un IV más alto son las más importantes para el modelo, mientras que aquellas con IV bajo o infinito son candidatas a ser revisadas para evaluar su utilidad.

Tratamiento de valores nulos:

En las variables categóricas, los valores nulos suelen reemplazarse asignando una nueva categoría: "Sin valor".

Es importante recordar que los datos de tipo entero definidos como categóricos, incluidas las variables booleanas, no presentan valores nulos. Sin embargo, si los tuvieran, deberían haberse tratado como parte del manejo de valores nulos numéricos. Para las variables booleanas, una opción sería imputar los nulos con -1, mientras que para las demás variables categóricas numéricas, sería necesario analizarlas con más detalle. Siguiendo el enfoque empleado hasta ahora, podríamos imputar los nulos con la mediana.

Guardado de los datos:

Guardamos el DataFrame para conservar este nuevo estado intermedio y facilitar su uso en futuras etapas del análisis.